package tutorias;

import java.util.Calendar;
import excepciones.AlumnoBecadoException;
import excepciones.AlumnoNoBecadoException;
import excepciones.LaAyudaEconomicaTodaviaNoCaducoException;
import excepciones.LasPasantiasNoSonRenovablesException;
import alumno.Alumno;

public class Tutorias {
	
	/**
	 * Otorga una ayuda economica al alumno
	 * @param alumno
	 * @param beca
	 * @throws AlumnoBecadoException
	 */
	public void otorgarAyudaEconomica(Alumno alumno,AyudaEconomica beca) throws AlumnoBecadoException{
		if(alumno.isBecario())
			throw new AlumnoBecadoException();
		else{
			alumno.setBecario(true);
			alumno.setAyudaEconomica(beca);
			beca.agregarBeneficiario(alumno);
		}			
	}
	
	/**
	 * Renueva la beca del alumno. 
	 * @param alumno
	 * @throws LasPasantiasNoSonRenovablesException
	 */
	public void renovarBeca(Alumno alumno) throws LasPasantiasNoSonRenovablesException{
		alumno.getAyudaEconomica().renovar();
	}
	
	/**
	 * Caduca la beca del alumno
	 * @param alumno
	 * @throws AlumnoNoBecadoException
	 * @throws LaAyudaEconomicaTodaviaNoCaducoException
	 */
	public void caducarBeca(Alumno alumno) throws AlumnoNoBecadoException, LaAyudaEconomicaTodaviaNoCaducoException{
		if(!alumno.isBecario())
			throw new AlumnoNoBecadoException();
		else{
			Calendar hoy = Calendar.getInstance();
			if(hoy.compareTo(alumno.getAyudaEconomica().getFechaFin()) >= 0){
				alumno.setBecario(false);
				alumno.setAyudaEconomica(null);
			}
			else
				throw new LaAyudaEconomicaTodaviaNoCaducoException();
		}
	}

}
